Web services are useful for requesting and receiving information. For example, a computer system may utilize web services in order to access functions and/or information stored on other computer systems across a network, such as the Internet or an intranet. Typically, a computer system makes a call to a web service according to protocol, formatting, and other requirements of the web service and receives a response in return according to a particular schema utilized by the web service. Often, computer systems that invoke web services invoke a single web service or correlated web services that provide information using a common schema. Web services in general, however, utilize various differing schemas, both for requests to the web services and responses from the web services.
Some applications, however, utilize information provided by multiple web services that utilize differing schemas. Because these web services utilize differing schemas, aggregation of data may be difficult because there is often no straightforward way to write aggregation functions such as “join” or “group.” As a result, utilization of multiple web services typically requires programmers to have substantial knowledge of the schemas used by the web services which they intend to invoke. Consequently, for a particular application, much time may be spent coding in order to interact with the various web services instead of concentrating on the core functions of the application. Thus, for example, if a developer wishes to utilize information from two different web services that receive requests according to different schemas and provide responses according to different schemas, the developer typically needs to write code that will be able to utilize the data despite that data being in different formats.